/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package GUI;

import commonsbeans.ApplicationBean;
import commonsbeans.SessionBean;
import entities.Usuario;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import persistence.UsuarioJpaController;

/**
 *
 * @author Felipe Duarte
 */
@ManagedBean
@ViewScoped
public class Login implements Serializable {

    @ManagedProperty(value = "#{sessionBean}")
    private SessionBean sessionBean;
    @ManagedProperty(value="#{applicationBean}")
    private ApplicationBean applicationBean;
    private UsuarioJpaController usuarioJpaController = null;
    public String idUsuario = "";
    public String contrasena = "";
    public boolean abastecimiento, construcciones, movilizacion, administracion;

    public Login() {
    }
    //Constructor

    @PostConstruct
    public void init() {
        initControllers();
    }

    //<editor-fold defaultstate="collapsed" desc="Funcionalidades">
    /**
     * Metodo para autenticar el usuario
     *
     */
    public String autenticarUsuario() {
        ((HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false)).setAttribute("usuario", idUsuario);
        Usuario user = usuarioJpaController.findUsuarioByIdAndPass(idUsuario, contrasena);
        if (user != null) {
            sessionBean.setUsuarioActual(user);
            return "success";

        }
        else{
         applicationBean.showErrorMessage("Usuario o contraseña no validos");
        }
        return null;
    }

    public void onChange() {
       
        
    }

    public void showSuccessMessage(String detail) {
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Operación exitosa", detail);
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
//</editor-fold>

    //<editor-fold defaultstate="collapsed" desc="Getter's y setter's">
    public SessionBean getSessionBean() {
        return sessionBean;
    }

    public void setSessionBean(SessionBean sessionBean) {
        this.sessionBean = sessionBean;
    }

    public ApplicationBean getApplicationBean() {
        return applicationBean;
    }

    public void setApplicationBean(ApplicationBean applicationBean) {
        this.applicationBean = applicationBean;
    }

    
    public String getIdUsuario() {
        return idUsuario;
    }

    public void setIdUsuario(String idUsuario) {
        this.idUsuario = idUsuario;
    }

    public String getContrasena() {
        return contrasena;
    }

    public boolean isAbastecimiento() {
        return abastecimiento;
    }

    public void setAbastecimiento(boolean abastecimiento) {
        this.abastecimiento = abastecimiento;
    }

    public boolean isConstrucciones() {
        return construcciones;
    }

    public void setConstrucciones(boolean construcciones) {
        this.construcciones = construcciones;
    }

    public boolean isMovilizacion() {
        return movilizacion;
    }

    public void setMovilizacion(boolean movilizacion) {
        this.movilizacion = movilizacion;
    }

    public boolean isAdministracion() {
        return administracion;
    }

    public void setAdministracion(boolean administracion) {
        this.administracion = administracion;
    }
    
    

    public void setContrasena(String contrasena) {
        this.contrasena = contrasena;
    }

//</editor-fold>
    //<editor-fold defaultstate="collapsed" desc="Inicializar los controladores">
    public void initControllers() {
        FacesContext context = FacesContext.getCurrentInstance();
        usuarioJpaController = (UsuarioJpaController) context.getELContext().getELResolver().getValue(context.getELContext(), null, "usuarioJpaController");

    }
//</editor-fold>
}
